home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / Miracle C Compiler / miricleC compiler.msi / Instal01.cab / _601CF80C93354218899E69BB584D175B < prev    next >
Encoding:
Text File  |  2000-07-04  |  2.6 KB  |  103 lines

  1. #include <assert.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. void xstring();
  6.  
  7. int main()
  8. {
  9.     xstring();
  10. }
  11.  
  12. void xstring()
  13. {
  14.     char *s1 = "qwerty";
  15.     char *s2 = "qwertz";
  16.     char str[30];
  17.  
  18.     printf("==> starting xstring <==\n");
  19.  
  20.     // --- test strlen
  21.     assert(strlen(s1)==strlen(s2));
  22.     assert(strlen(s1)==6);
  23.     assert(strlen(s1+6)==0); assert(strlen("")==0);
  24.     printf("passed strlen...   ");
  25.  
  26.     // --- test various string functions
  27.     strcpy(str,s1); strcat(str,s2);
  28.     assert(strcmp(str,"qwertyqwertz")==0);
  29.     printf("passed strcpy/strcat...   ");
  30.  
  31.     str[0]='\0'; assert(strcmp(str,"")==0);
  32.     strcat(str,""); assert(strcmp(str,"")==0);
  33.     strcpy(str,s2); assert(strcmp(str,s2)==0);
  34.  
  35.     assert(strcmp(s1,s2)<0); assert(strcmp(s2,s1)>0);
  36.     printf("passed strcmp...\n");
  37.  
  38.     str[0]='\0';
  39.     assert(strncmp(s1,s2,5)==0);
  40.     strncpy(str,s1,5); assert(strncmp(str,s2,5)==0);
  41.     strcpy(str,s1); assert(strncmp(str,s2,6)!=0);
  42.     strcat(str,s2); assert(strncmp(str,"qwertyqwertz",12)==0);
  43.     printf("passed strncpy/strncmp...   ");
  44.  
  45.     strcpy(str,"hi"); strncat(str,s2,3); 
  46.     assert(strncmp(str,"hiqw",4)==0);
  47.     printf("passed strncat...   ");
  48.  
  49.     // --- test mem functions
  50.     assert(memchr(s1,'r',6)==&s1[3]);
  51.     assert(memchr(s1,'t',6)==&s1[4]);
  52.  
  53.     assert(memcmp(s1,s2,5)==0);
  54.     assert(memcmp(s1,s2,6)<0);
  55.     assert(memcmp(s2,s1,6)>0);
  56.     printf("passed memchr/memcmp...\n");
  57.  
  58.     memcpy(str,s2,6); memcpy(str,s1,5);
  59.     assert(memcmp(str,s2,6)==0);
  60.  
  61.     memmove(s1+1,s1,5); assert(strcmp(s1,"qqwert")==0);
  62.     memmove(s1,s1+1,5); assert(strcmp(s1,"qwertt")==0);
  63.     printf("passed memcpy/memmove...   ");
  64.  
  65.     memset(s1,'a',0); assert(strcmp(s1,"qwertt")==0);
  66.     memset(s1,'b',3); assert(strcmp(s1,"bbbrtt")==0);
  67.     printf("passed memset...   ");
  68.  
  69.     // --- test strchr/strrchr
  70.     assert(strchr("nothinghere",'x')==NULL);
  71.     assert(strchr(s2,'r')==&s2[3]);
  72.     assert(strchr(s2,'\0')==&s2[6]);
  73.  
  74.     assert(strrchr("nothinghere",'x')==NULL);
  75.     assert(strrchr(s2,'r')==&s2[3]);
  76.     assert(strrchr(s2,'\0')==&s2[6]);
  77.     printf("passed strchr/strrchr...\n");
  78.  
  79.     // --- test strpbrk/strstr
  80.     assert(strpbrk(s2,"atb")==&s2[4]);
  81.     assert(strpbrk(s2,"azb")==&s2[5]);
  82.     assert(strpbrk(s2,"akb")==NULL);
  83.  
  84.     assert(strstr(s2,"tz")==&s2[4]);
  85.     assert(strstr(s2,"iz")==NULL);
  86.     assert(strstr(s2,"no")==NULL);
  87.     printf("passed strpbrk/strstr...   ");
  88.  
  89.     // --- test strspn/strcspn
  90.     assert(strspn(s2,"rwq")==2);
  91.     assert(strspn(s2,"t")==0);
  92.  
  93.     assert(strspn(s2,"qwert")==5);
  94.     assert(strspn(s2,"tzeqwr")==6);
  95.  
  96.     assert(strcspn(s2,"abr")==3);
  97.     assert(strcspn(s2,"abc")==6);
  98.     printf("passed strspn/strcspn...\n");
  99.  
  100.     printf("==> finished xstring <==\n");
  101.     return;
  102. }
  103.